<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // function fn(a){
        //     console.log(a);
        // }
        // fn(1)

        // fn()
        // var fn = function(){
        //     console.log("fn");
        // }
        

        // 箭头函数
        // 写法：1.如果是一个参数  可以省略小括号 ，没有arguments 隐藏参数，可以通过rest 剩余参数代替 arguments 
        //   var fn =  a =>{
        //       console.log(a);
        //   }
        //   fn(1)

        //   var fn = function(a,b){
        //     console.log(a,b);
        //   }
        //   fn(1,2)

        //   var fn = (a,b)=>{
        //     console.log(a,b);
        //   }
        //   fn(1,2)

        //  箭头函数没有 arguments 参数 ；
        //   var fn = function(){
        //     console.log(arguments);
        //   }

          var fn = (...args)=>{
            // console.log(arguments); 报错
            console.log(args);
          }
          fn(1,2,3)

        //   箭头函数自带 return，隐式返还；
        // 箭头函数后面如果不写大括号会自动返还值；
        var fn = function(a){
            return a
        }
        console.log(fn(1));

        var fn = a=>a;
        console.log(fn(1));

        //   var fn = (a,b)=> a+b
        //   console.log(fn(1,2));

        // 箭头函数返回对象
        // var fn = ()=>{name:'李四'} // 错误写法
        // 1.0
        // var fn = ()=>{
        //     return {name:'张三'}
        // }
        // 2.0
        var fn = () =>({name:'王五'})
        console.log(fn());
    </script>
</body>
</html>